/*
  枚举 : 把一些量词列举出来
* redux : type
  颜色
  HTTP的状态码
  返回结果 成功 失败 加载中
* */
enum Colors {
  RED,
  GREEN,
  YELLOW
}

let color: Colors;

function getColor(num:number):Colors {
  switch (num) {
    case Colors.RED: // 0
      break;
    case Colors.GREEN: // 1
      break;
    case Colors.YELLOW: // 2
      break;
  }
  return Colors.GREEN
}

/*
*  next + ts 多看文档 + 48个题
* */

type User = {
  id: number;
  kind: string;
};

function makeCustomer<T extends User>(u: T): T {
  return {
    ...u,
    id: u.id,
    kind: 'customer'
  }
}

type MyUser =  {
  id: number;
  kind: string;
  a: boolean;
};
let aa: MyUser = {
  id: 12,
  kind: '12',
  a: true
};
makeCustomer<MyUser>(aa);
